package org.rugby.online.core.season;

import java.util.List;

import org.rugby.online.core.base.RboObject;

/**
 * Interface to describe a season in the game
 * @author marseille 
 */
public interface RboSeason extends RboObject {

	/**
	 * All seasons have 84 days (12 weeks)
	 */
	public static final int NUMBER_OF_DAYS = 84;
	
	/**
	 * Get the number of this season
	 * @return the number associated to this season
	 */
	public int getSeasonNumber();
	
	/**
	 * Get the list of days in the season
	 * @return the complete list of days
	 */
	public List<RboDay> getDays();
	
	/**
	 * Get the list of days where a match is planned
	 * @return the list of days
	 */
	public List<RboDay> getMatchDays();
	
	/**
	 * Get the list of days where a match is planned
	 * @return the list of days
	 */
	public List<RboDay> getCupDays();
	
	/**
	 * Get the list of training days
	 * @return the list of training days
	 */
	public List<RboDay> getTrainingDays();
	
	/**
	 * Initialize the season
	 */
	public void init();
	
	/**
	 * Close the season
	 */
	public void terminate();
	
	/**
	 * Get the current day of the season
	 * @return the current day
	 */
	public int currentDay();
	
}
